package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * JDBC java数据库连接
 */
public class JDBCDemo1 {
    public static void main(String[] args) throws Exception {
        /*
            使用JDBC连接数据库的大致步骤
            1:加载驱动
            2:通过驱动管理器与数据库建立连接,得到一个Connection对象
            3:通过连接对象获取语句对象Statement
            4:通过语句对象执行SQL语句
            5:如果执行的是DQL(查询语句)则会得到结果集对象ResultSet
            6:遍历结果集得到查询结果
            7:与数据库断开连接
         */
        /*
            1
            不同数据库Driver类的位置不同,需要根据实际链接的数据库去查对应的位置
         */
        Class.forName("com.mysql.cj.jdbc.Driver");

        //2
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root"
        );
        System.out.println("与数据库建立连接!");

        //3
        Statement statement = connection.createStatement();

        /*
            测试创建一张表userinfo
            CREATE TABLE userinfo(
                id INT PRIMARY KEY AUTO_INCREMENT,
                username VARCHAR(30),
                password VARCHAR(30),
                nickname VARCHAR(30),
                age INT(3)
            )
         */
        String sql = "CREATE TABLE userinfo(" +
                     "   id INT PRIMARY KEY AUTO_INCREMENT," +
                     "   username VARCHAR(30)," +
                     "   password VARCHAR(30)," +
                     "   nickname VARCHAR(30)," +
                     "   age INT(3)" +
                     ")";
        /*
            execute()方法实际上可以执行任意种类的SQL语句
            但是:
            DML语句有专门的方法,DQL也有专门的方法
            因此通常我们使用execute()执行的就是DDL语句
         */
        statement.execute(sql);
        System.out.println("执行完毕");

        connection.close();
    }
}







